#include <iostream>

// 继承中的构造和析构顺序如下：
//      先构造父类，再构造子类，析构的顺序与构造的顺序相反
// 总结：继承中 先调用父类构造函数，构造再调用子类函数，析构顺序与构造相反
class A {
public:
    int a;
};

// vs才有
// 利用开发人员命令提示工具查看对象模型
//  cl /dl reportSingleClassLayout类名 文件名
class B : private A {
public:
    int b;
};

// 同名成员函数处理

// 直接调用 调用是子类中的同名成员
//  如何调用到父类中同名成员函数？
//          s.Base::func()；

// 如果子类中出现和父类同名的成员函数，子类的同名成员会隐藏掉父类中所有同名成员函数
// 如果想访问到父类中被隐藏的同名成员函数，需要加作用域
// s.Base::func(100)；
int main() {

    return 0;
}

